/**
 * DevOps 系统权限CODE枚举
 * 只包含与本系统（埋点、监控、部署）相关的权限码
 */

export enum PermissionCode {
  // ==================== 埋点管理权限 ====================
  /** 创建网站配置 */
  CREATE_WEBSITE = 'CREATE_WEBSITE',
  /** 查看网站列表 */
  SHOW_WEBSITE_LIST = 'SHOW_WEBSITE_LIST',
  /** 查看网站详情 */
  SHOW_WEBSITE_DETAIL = 'SHOW_WEBSITE_DETAIL',
  /** 更新网站配置 */
  UPDATE_WEBSITE = 'UPDATE_WEBSITE',
  /** 删除网站配置 */
  DELETE_WEBSITE = 'DELETE_WEBSITE',
  /** 查看埋点数据 */
  SHOW_TRACKING_DATA = 'SHOW_TRACKING_DATA',
  /** 查看埋点统计 */
  SHOW_TRACKING_STATS = 'SHOW_TRACKING_STATS',
  /** 导出埋点数据 */
  EXPORT_TRACKING_DATA = 'EXPORT_TRACKING_DATA',

  // ==================== 性能监控权限 ====================
  /** 查看性能指标 */
  SHOW_PERFORMANCE_METRICS = 'SHOW_PERFORMANCE_METRICS',
  /** 创建性能指标 */
  CREATE_PERFORMANCE_METRIC = 'CREATE_PERFORMANCE_METRIC',
  /** 查看系统指标 */
  SHOW_SYSTEM_METRICS = 'SHOW_SYSTEM_METRICS',
  /** 创建系统指标 */
  CREATE_SYSTEM_METRIC = 'CREATE_SYSTEM_METRIC',
  /** 查询指标数据 */
  QUERY_METRICS = 'QUERY_METRICS',

  // ==================== 部署管理权限 ====================
  /** 创建部署记录 */
  CREATE_DEPLOYMENT = 'CREATE_DEPLOYMENT',
  /** 查看部署列表 */
  SHOW_DEPLOYMENT_LIST = 'SHOW_DEPLOYMENT_LIST',
  /** 查看部署详情 */
  SHOW_DEPLOYMENT_DETAIL = 'SHOW_DEPLOYMENT_DETAIL',
  /** 更新部署记录 */
  UPDATE_DEPLOYMENT = 'UPDATE_DEPLOYMENT',
  /** 删除部署记录 */
  DELETE_DEPLOYMENT = 'DELETE_DEPLOYMENT',

  // ==================== 资源管理权限 ====================
  /** 创建资源 */
  CREATE_RESOURCE = 'CREATE_RESOURCE',
  /** 查看资源列表 */
  SHOW_RESOURCE_LIST = 'SHOW_RESOURCE_LIST',
  /** 查看资源详情 */
  SHOW_RESOURCE_DETAIL = 'SHOW_RESOURCE_DETAIL',
  /** 更新资源 */
  UPDATE_RESOURCE = 'UPDATE_RESOURCE',
  /** 删除资源 */
  DELETE_RESOURCE = 'DELETE_RESOURCE',

  // ==================== 报表管理权限 ====================
  /** 创建报表 */
  CREATE_REPORT = 'CREATE_REPORT',
  /** 查看报表列表 */
  SHOW_REPORT_LIST = 'SHOW_REPORT_LIST',
  /** 查看报表详情 */
  SHOW_REPORT_DETAIL = 'SHOW_REPORT_DETAIL',
  /** 更新报表 */
  UPDATE_REPORT = 'UPDATE_REPORT',
  /** 删除报表 */
  DELETE_REPORT = 'DELETE_REPORT',
  /** 导出报表 */
  EXPORT_REPORT = 'EXPORT_REPORT',
}

/**
 * 权限CODE映射表（用于显示权限名称）
 */
export const PermissionCodeMap: Record<PermissionCode, string> = {
  // 埋点管理权限
  [PermissionCode.CREATE_WEBSITE]: '创建网站配置',
  [PermissionCode.SHOW_WEBSITE_LIST]: '查看网站列表',
  [PermissionCode.SHOW_WEBSITE_DETAIL]: '查看网站详情',
  [PermissionCode.UPDATE_WEBSITE]: '更新网站配置',
  [PermissionCode.DELETE_WEBSITE]: '删除网站配置',
  [PermissionCode.SHOW_TRACKING_DATA]: '查看埋点数据',
  [PermissionCode.SHOW_TRACKING_STATS]: '查看埋点统计',
  [PermissionCode.EXPORT_TRACKING_DATA]: '导出埋点数据',

  // 性能监控权限
  [PermissionCode.SHOW_PERFORMANCE_METRICS]: '查看性能指标',
  [PermissionCode.CREATE_PERFORMANCE_METRIC]: '创建性能指标',
  [PermissionCode.SHOW_SYSTEM_METRICS]: '查看系统指标',
  [PermissionCode.CREATE_SYSTEM_METRIC]: '创建系统指标',
  [PermissionCode.QUERY_METRICS]: '查询指标数据',

  // 部署管理权限
  [PermissionCode.CREATE_DEPLOYMENT]: '创建部署记录',
  [PermissionCode.SHOW_DEPLOYMENT_LIST]: '查看部署列表',
  [PermissionCode.SHOW_DEPLOYMENT_DETAIL]: '查看部署详情',
  [PermissionCode.UPDATE_DEPLOYMENT]: '更新部署记录',
  [PermissionCode.DELETE_DEPLOYMENT]: '删除部署记录',

  // 资源管理权限
  [PermissionCode.CREATE_RESOURCE]: '创建资源',
  [PermissionCode.SHOW_RESOURCE_LIST]: '查看资源列表',
  [PermissionCode.SHOW_RESOURCE_DETAIL]: '查看资源详情',
  [PermissionCode.UPDATE_RESOURCE]: '更新资源',
  [PermissionCode.DELETE_RESOURCE]: '删除资源',

  // 报表管理权限
  [PermissionCode.CREATE_REPORT]: '创建报表',
  [PermissionCode.SHOW_REPORT_LIST]: '查看报表列表',
  [PermissionCode.SHOW_REPORT_DETAIL]: '查看报表详情',
  [PermissionCode.UPDATE_REPORT]: '更新报表',
  [PermissionCode.DELETE_REPORT]: '删除报表',
  [PermissionCode.EXPORT_REPORT]: '导出报表',
};

/**
 * 获取权限名称
 * @param code 权限CODE
 * @returns 权限名称
 */
export function getPermissionName(code: PermissionCode): string {
  return PermissionCodeMap[code] || code;
}

